/*
 * @Author: 码农 2646995216@qq.com
 * @Date: 2025-02-25 20:07:48
 * @LastEditors: 码农 2646995216@qq.com
 * @LastEditTime: 2025-02-25 23:14:36
 * @FilePath: /signal/text.cc
 * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
 */
#include <stdio.h>
#include <unistd.h>
#include <signal.h>
#include<iostream>

using namespace std;

volatile int g_flag = 0;//加了volatile后，无论是否优化，都只会从内存中拿数据

void changeflag(int signo)
{
	g_flag = 1;
}

int main()
{
    cout<<"pid:"<<getpid()<<endl;
	signal(2, changeflag);

	while (!g_flag)
		; // 故意写成这个样子, 编译器默认会对我们的代码进行优化
	// 因为，g_flag一直都没使用过

	cout<<"g_flag="<<g_flag<<endl;
	return 0;
}
